home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / comm2 / zpont311.lha / zpoint-3.11 / Rexx / VIP_search.zprx < prev    next >
Text File  |  1995-03-09  |  7KB  |  207 lines

  1. /* VIP_search.rexx */
  2.  
  3. /* $VER: V1.01 (13-Apr-1994) © Thomas Schlink {DENEB@KUESTE.NORTH.DE} */
  4.  
  5.  
  6. /****************************************************************************/
  7. /*                                                                          */
  8. /*                                                                          */
  9. /*          __     _____ ____                             _                 */
  10. /*          \ \   / /_ _|  _ \    ___  ___  __ _ _ __ ___| |__              */
  11. /*           \ \ / / | || |_) |  / __|/ _ \/ _` | '__/ __| '_ \             */
  12. /*            \ V /  | ||  __/   \__ \  __/ (_| | | | (__| | | |            */
  13. /*             \_/  |___|_| _____|___/\___|\__,_|_|  \___|_| |_|            */
  14. /*                         |_____|                                          */
  15. /*                                                                          */
  16. /*                                                                          */
  17. /*                                                                          */
  18. /****************************************************************************
  19.  
  20.  
  21.  
  22.     1. Was tut es:
  23.  
  24.     VIP_search  hat  die Aufgabe, alle neuen Nachrichten in einem Brett zu
  25.     markieren, die von Personen stammen, welche Du als wichtig empfindest.
  26.     Diese   Personen  werden  zu  diesem  Zweck  einmalig  in  eine  Liste
  27.     (Envarc:VIP_search.people)    aufgenommen.   Das   Anlegen   und   die
  28.     Erweiterung der Liste geschieht bequem über dieses ARexx-Script.
  29.  
  30.  
  31.  
  32.     2. Wie installiere ich es:
  33.  
  34.     Beide  Aufgaben,  das  Erweitern  der  Liste, als auch die eigentliche
  35.     Aufgabe,  das  Suchen  nach  Nachrichten werden von ein und dem selben
  36.     Script   erledigt.   Dieses   Script   (VIP_search.rexx)  kopiert  man
  37.     sinnvollerweise   nach  'Zodiac:Rexx'.  Anschließend  wird  die  Datei
  38.     Zodiac:fkeys.zp um zwei Einträge erweitert:
  39.  
  40.     F10:SYS:Rexxc/rx Zodiac:Rexx/VIP_search.rexx %s search
  41.     F20:SYS:Rexxc/rx Zodiac:Rexx/VIP_search.rexx %s add
  42.  
  43.     Die Wahl der Funktionstasten ist Dir natürlich freigestellt.   
  44.     ( <F20> = <Shift> + <F10> )    
  45.     Denke daran, daß Du ZPoint neu starten mußt, nachdem Du fkeys.zp geän-
  46.     dert hast.
  47.  
  48.  
  49.  
  50.     3. Wie benutze ich es:
  51.  
  52.     Die  Benutzung  ist  denkbar  einfach: Zuersteinmal die Liste anlegen.
  53.     Dazu  sucht  man  in den Brettern nach Mails von verschiedenen Leuten,
  54.     deren  geistige  Ergüsse  man  zukünftig  nicht mehr verpassen möchte.
  55.     (Lustig z.B. die Mails von Dr. Peterchen) Wenn der Cursor auf der Mail
  56.     ist,  dann  einfach <shift> + <F10> drücken und die Liste ist um einen
  57.     Eintrag  erweitert. Sollte eine Person dieser Liste später mal bei Dir
  58.     in  Ungnade  fallen, so kannst Du sie mit einem Text-Editor wieder aus
  59.     der  Liste  löschen.  Das  Suchen  geschieht später sehr einfach durch
  60.     betätigen der Taste <F10>
  61.  
  62.  
  63.     4. Was ist neu, seit der V1.00:
  64.  
  65.     Groß- / Kleinschreibung  des  Absenders wird ignoriert. Das erhöht die
  66.     Trefferquote  und  erspart einem das mehrfache Einscannen eines VIP's.
  67.  
  68.  
  69.  
  70. *****************************************************************************/
  71.  
  72.  
  73. options results
  74.  
  75. PARSE arg ZPScreen Aufgabe
  76.  
  77. Dateiname = 'VIP_search.people'
  78.  
  79. address VALUE ZPScreen
  80.  
  81.  
  82. If UPPER(Aufgabe) = 'ADD'    then CALL ADD
  83. If UPPER(Aufgabe) = 'SEARCH' then CALL SEARCH
  84.  
  85. EXIT
  86.  
  87.  
  88.  
  89. /*****************************************************************************/
  90. /*                                                                           */
  91. /*             Unterprogramm "ADD" zum Ergänzen der VIP-Liste                */
  92. /*                                                                           */
  93. /*****************************************************************************/
  94.  
  95. ADD:
  96.  
  97.   WHICHLEVEL ; Level=RESULT
  98.  
  99.   IF Level ~= 'BOARD'  then DO
  100.      REQUESTNOTIFY 'Du Dummbatz! Du bist doch nicht im Brettmenue!'
  101.      EXIT
  102.      END
  103.  
  104.   MESSAGEINFO AUTHOR ; Author = RESULT 
  105.  
  106.   /* Zuerst testen, ob die Datei überhaupt schon existiert */
  107.  
  108.   If ~EXISTS(Dateiname) then DO
  109.      /* Datei existiert noch nicht und wird neu angelegt */
  110.      ok = OPEN('VIP-Datei',Dateiname,'W')
  111.      ok = CLOSE('VIP-Datei')
  112.      END
  113.  
  114.   REQUESTRESPONSE Author
  115.  
  116.   If RC then DO
  117.      /* Die VIP wird gespeichert */
  118.      ok = OPEN('VIP-Datei',Dateiname,'A')
  119.      ok = WRITELN('VIP-Datei',Author)
  120.      ok = CLOSE('VIP-Datei')
  121.      If ok then REQUESTNOTIFY 'VIP wurde gespeichert!'
  122.            else REQUESTNOTIFY 'FEHLER beim Speichern!'
  123.      END
  124.      else REQUESTNOTIFY 'VIP wurde nicht gespeichert!'
  125.  
  126. RETURN
  127.  
  128.  
  129.  
  130.  
  131. /*****************************************************************************/
  132. /*                                                                           */
  133. /*       Unterprogramm "SEARCH" zum Markiren der "Wichtigen" People          */
  134. /*                                                                           */
  135. /*****************************************************************************/
  136.  
  137. SEARCH:
  138.  
  139.   WHICHLEVEL ; Level=RESULT
  140.  
  141.   IF Level = 'MAINMENU'  then DO
  142.      REQUESTNOTIFY 'Du Dummbatz! Du bist doch im Hauptmenue!'
  143.      EXIT
  144.      END
  145.  
  146.   IF Level = 'BOARDMENU' then ENTERBOARD
  147.  
  148.  
  149.  
  150.   COUNT NEW ; N_neu = RESULT  /* Anzahl neuer Nachrichten im Brett */
  151.  
  152.  
  153.   /* Zuerst testen, ob die Datei überhaupt schon existiert */
  154.  
  155.   If ~EXISTS(Dateiname) then DO
  156.      REQUESTNOTIFY 'Es sind noch keine ''wichtigen'' People''s in der Liste !'
  157.      EXIT
  158.      END
  159.  
  160.  
  161.   ok=OPEN('VIP-Datei',Dateiname,'R')
  162.      Anzahl = 0
  163.      Do while ~EOF('VIP-Datei')
  164.         Anzahl = Anzahl+1
  165.         People.Anzahl = READLN('VIP-Datei')
  166.  
  167.         /* Doppelte Eintragungen ausschließen: */
  168.         Do i=1 FOR Anzahl-1
  169.            If People.Anzahl = People.i then DO
  170.               Anzahl=Anzahl-1  /* war doppelt      */
  171.               i=Anzahl         /* Schleife beenden */
  172.               END
  173.         END
  174.      END
  175.      Anzahl = Anzahl-1         /* die letzte Zeile ist leer */
  176.   ok=CLOSE('VIP-Datei')
  177.  
  178.   /* Die Variable 'Anzahl' enthält die Anzahl an VIP's in der Liste:  */
  179.   /* People.1, People.2, ... , People.Anzahl                          */
  180.  
  181.   SELECTMESSAGE NONE
  182.   JUMPTOMESSAGE 1
  183.   JUMPTONEW Down
  184.   JUMPTONEW Up
  185.  
  186.   Anzahl_gefunden = 0
  187.   DO i=1 FOR N_neu
  188.     DROP Author
  189.     MESSAGEINFO AUTHOR ; Author = RESULT 
  190.        DO j=1 FOR Anzahl
  191.        If UPPER(People.j) = UPPER(Author) then DO
  192.           SELECTMESSAGE
  193.           Anzahl_gefunden = Anzahl_gefunden + 1
  194.           END
  195.     END
  196.     JUMPTONEW Down
  197.   END
  198.  
  199.   JUMPTOMESSAGE 1
  200.   JUMPTONEW Down
  201.   JUMPTONEW Up
  202.  
  203.   If Anzahl_gefunden = 1 then REQUESTNOTIFY Anzahl_gefunden || ' VIP gefunden!'
  204.                          else REQUESTNOTIFY Anzahl_gefunden || ' VIP''s gefunden!'
  205.  
  206. RETURN
  207.